home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PNC-ATL1.ZIP
/
ATLANTIS.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1997-02-10
|
15KB
|
902 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean TBOOLEAN010(100)
Boolean TBOOLEAN011(100)
Boolean BOOLEAN012
Boolean BOOLEAN013
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
Integer INTEGER025
Integer INTEGER026
Integer INTEGER027
Integer INTEGER028
Integer INTEGER030
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String TSTRING017(4)
String TSTRING018(25)
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String TSTRING024(100)
String TSTRING025(100)
String TSTRING026(100)
String TSTRING027(100)
String TSTRING028(100)
String TSTRING029(200)
String TSTRING030(100)
String TSTRING031(100)
String TSTRING032(100)
String TSTRING033(100)
String STRING034
String STRING036
Declare Function FUNCTION001(String STRING035, Boolean BOOLEAN014) String
Declare Function FUNCTION002(Integer INTEGER029) Integer
;------------------------------------------------------------------------------
STRING001 = "-------------------------------------------------------------"
STRING001 = "■ Atlantis ■ Copyright (c) 1996-1997 Jolly Roger ■ Atlantis ■"
STRING001 = "-------------------------------------------------------------"
STRING001 = "I'd like to thank you for your interest in this masterpiece! "
STRING001 = "You may not modify this source code because that's illegal! "
STRING001 = "Don't be lame - don't change my name! "
STRING001 = " - Jolly Roger - "
STRING001 = "-------------------------------------------------------------"
GetUser
RdUNet PcbNode()
STRING012 = UN_Stat()
WrUNet PcbNode(), UN_Stat(), U_Name(), U_City, "Currently in menu. Atlantis v1.0", ""
STRING003 = PcbNode()
INTEGER015 = 0
INTEGER028 = 0
If (AnsiOn() == 0) Then
Call PPEPath() + "ASCii\ASCii.PPE"
End
Endif
StartDisp 1
If (U_Expert == 1) Then
BOOLEAN001 = 1
BOOLEAN002 = 1
Endif
Gosub LABEL013
Gosub LABEL012
If (BOOLEAN001 == 1) Goto LABEL007
:LABEL001
Newline
PrintLn "@X01■ @X09ATLANTIS v1.0 @X01■@X09 Written By@X01:@X09 Jolly Roger / PiNNACLE '97@X01■@X07"
Gosub LABEL017
If (BOOLEAN013 == 1) Gosub LABEL020
INTEGER025 = FUNCTION002(Sec(Time()))
BOOLEAN009 = 1
If (INTEGER006 == 0) INTEGER006 = 1
:LABEL002
STRING009 = ""
StartDisp 1
DispFile STRING010 + STRING011 + ".PCB", 0
Gosub LABEL016
If (BOOLEAN004 == 1) Then
AnsiPos INTEGER016, INTEGER017
Print STRING013 + "@TIMELEFT@"
Endif
If (BOOLEAN005 == 1) Then
AnsiPos INTEGER018, INTEGER019
Print STRING015 + "@CONFNAME@"
Endif
AnsiPos INTEGER011, INTEGER012
Print STRING014 + Space(INTEGER004)
AnsiPos INTEGER011, INTEGER012
Print STRING014 + TSTRING026(INTEGER006)
AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
BOOLEAN003 = 1
:LABEL003
STRING002 = FUNCTION001("", 1)
Select Case (Upper(STRING002))
Case "UP"
Gosub LABEL024
If (TSTRING030(INTEGER006) <> 0) INTEGER006 = TSTRING030(INTEGER006)
Gosub LABEL025
Case "DOWN"
Gosub LABEL024
If (TSTRING031(INTEGER006) <> 0) INTEGER006 = TSTRING031(INTEGER006)
Gosub LABEL025
Case "LEFT"
Gosub LABEL024
If (TSTRING032(INTEGER006) <> 0) INTEGER006 = TSTRING032(INTEGER006)
Gosub LABEL025
Case "RIGHT"
Gosub LABEL024
If (TSTRING033(INTEGER006) <> 0) INTEGER006 = TSTRING033(INTEGER006)
Gosub LABEL025
If ((((Upper(STRING002) == "HOME") || (Upper(STRING002) == "END")) || (Upper(STRING002) == "INS")) || (Upper(STRING002) == "DEL")) Then
Goto LABEL006
Endif
Case "PGUP"
If (INTEGER015 == 0) INTEGER015 = INTEGER028 + 1
If (INTEGER015 > 1) Then
Dec INTEGER015
AnsiPos INTEGER011, INTEGER012
If (BOOLEAN003 == 0) Then
Print STRING014 + Space(Len(STRING009))
Goto LABEL004
Endif
Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
:LABEL004
STRING009 = ""
AnsiPos INTEGER011, INTEGER012
KbdStuff TSTRING018(INTEGER015)
Endif
Case "PGDN"
If (INTEGER015 == 0) INTEGER015 = 1
If (INTEGER015 < INTEGER028) Then
Inc INTEGER015
AnsiPos INTEGER011, INTEGER012
If (BOOLEAN003 == 0) Then
Print STRING014 + Space(Len(STRING009))
Goto LABEL005
Endif
Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
:LABEL005
STRING009 = ""
AnsiPos INTEGER011, INTEGER012
KbdStuff TSTRING018(INTEGER015)
Endif
Case Chr(13)
If (BOOLEAN003 == 1) STRING009 = TSTRING026(INTEGER006)
If (Trim(STRING009, " ") == "") Then
Backup Len(STRING009)
STRING009 = ""
Else
ResetDisp
Color 7
Cls
Gosub LABEL014
If (BOOLEAN003 == 1) Then
If (TBOOLEAN011(INTEGER006) == 1) Then
Newline
Wait
Endif
Else
Newline
Endif
STRING009 = ""
If (U_Expert == 1) Then
BOOLEAN002 = 1
Goto LABEL007
Endif
Goto LABEL002
Endif
Case Chr(27)
AnsiPos INTEGER011, INTEGER012
If (BOOLEAN003 == 0) Then
Print STRING014 + Space(Len(STRING009))
Else
Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
Endif
STRING009 = ""
AnsiPos INTEGER011, INTEGER012
Case Chr(8)
If (BOOLEAN003 == 1) Then
BOOLEAN003 = 0
STRING009 = TSTRING026(INTEGER006)
If (Len(STRING009) > 0) Then
STRING009 = Left(STRING009, Len(STRING009) - 1)
AnsiPos INTEGER011 + Len(STRING009), INTEGER012
Print STRING014 + " "
AnsiPos INTEGER011 + Len(STRING009), INTEGER012
Endif
ElseIf (Len((STRING009 > 0))) Then
STRING009 = Left(STRING009, Len(STRING009) - 1)
AnsiPos INTEGER011 + Len(STRING009), INTEGER012
Print STRING014 + Space(1)
AnsiPos INTEGER011 + Len(STRING009), INTEGER012
Endif
Case 1
STRING009 = TSTRING026(INTEGER006)
AnsiPos INTEGER011, INTEGER012
Print STRING014 + Space(Len(STRING009))
AnsiPos INTEGER011, INTEGER012
Print STRING014 + STRING002
STRING009 = STRING002
BOOLEAN003 = 0
Case INTEGER004
STRING009 = STRING009 + STRING002
Print STRING014 + STRING002
Case Else
Beep
End Select
:LABEL006
Goto LABEL003
End
:LABEL007
If (STRING008 <> "") Then
PrintLn STRING007
Print STRING008
Else
Print STRING007
Endif
:LABEL008
STRING006 = ""
INTEGER009 = GetY()
INTEGER010 = GetX()
AnsiPos INTEGER010, INTEGER009
:LABEL009
INTEGER025 = 0
STRING002 = FUNCTION001("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+|1234567890-=\][{};':/.,<>? " + Chr(13) + Chr(8) + Chr(27) + Chr(34), 1)
If (STRING002 <> Chr(13)) Then
If (STRING002 == Chr(27)) Then
AnsiPos INTEGER010, INTEGER009
Print STRING014 + Space(Len(STRING006))
Goto LABEL008
Endif
If (STRING002 == Chr(8)) Then
If (Len((STRING006 > 0))) Then
STRING006 = Left(STRING006, Len(STRING006) - 1)
AnsiPos INTEGER010 + Len(STRING006), INTEGER009
Print " "
AnsiPos INTEGER010 + Len(STRING006), INTEGER009
Endif
Goto LABEL009
Endif
If (STRING002 == "LEFT") Then
If (Len((STRING006 > 0))) Then
STRING006 = Left(STRING006, Len(STRING006) - 1)
AnsiPos INTEGER010 + Len(STRING006), INTEGER009
Print " "
AnsiPos INTEGER010 + Len(STRING006), INTEGER009
Endif
Goto LABEL009
Endif
If (Len(STRING006) < INTEGER003) Then
If (STRING002 == "RIGHT") STRING002 = " "
If (STRING002 == "UP") STRING002 = ""
If (STRING002 == "DOWN") STRING002 = ""
If (STRING002 == "RIGHT") STRING002 = ""
STRING006 = STRING006 + STRING002
Print STRING014 + STRING002
Goto LABEL009
Goto LABEL010
Endif
Beep
Goto LABEL009
Endif
:LABEL010
STRING006 = Trim(STRING006, " ")
If (Len(STRING006) == 0) Then
Newlines 2
Goto LABEL007
Endif
STRING009 = STRING006
Gosub LABEL014
If (U_Expert == 0) Then
If (BOOLEAN001 == 1) Then
BOOLEAN001 = 0
Goto LABEL001
Goto LABEL011
Endif
BOOLEAN002 = 0
Goto LABEL002
Endif
:LABEL011
Goto LABEL007
:LABEL012
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 1)
STRING004 = Mid(STRING004, 16, 5)
Tokenize STRING004
If (GetToken() == "NO") Then
INTEGER001 = GetToken()
Else
INTEGER001 = Random(GetToken())
If (INTEGER001 == 0) INTEGER001 = 1
Endif
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 2)
INTEGER002 = Mid(STRING004, 15, 4)
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 3)
STRING005 = Trim(Mid(STRING004, 15, 10), " ")
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 4)
STRING007 = Mid(STRING004, 16, Len(STRING004) - 15)
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 5)
STRING008 = Mid(STRING004, 16, Len(STRING004) - 15)
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 6)
INTEGER003 = Mid(STRING004, 17, 2)
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 7)
If (Upper(Mid(STRING004, 9, Len(STRING004) - 8)) == "YES") BOOLEAN013 = 1
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 8)
INTEGER026 = Mid(STRING004, 14, 2)
STRING004 = ReadLine(PPEPath() + "Atlantis.CFG", 9)
STRING021 = "@X" + Mid(STRING004, 13, 2)
Return
:LABEL013
If (Exist(PPEPath() + "Atlantis.CFG") == 0) Then
PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
Newline
PrintLn "@X08■ @X07The file : @X0F" + Upper(PPEPath()) + "Atlantis.CFG @X07is missing."
Newline
Wait
End
Endif
If (Exist(PPEPath() + "Sysop\Sysop.PPE") == 0) Then
PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
Newline
PrintLn "@X08■ @X07The file : @X0F" + Upper(PPEPath()) + "SYSOP\Sysop.PPE @X07is missing."
Newline
Wait
End
Endif
Return
:LABEL014
INTEGER015 = 0
STRING009 = Trim(STRING009, " ")
Tokenize STRING009
Select Case (Upper(STRING009))
Case ""
Return
Case "?", "MENU"
If (INTEGER028 < 25) Then
Inc INTEGER028
TSTRING018(INTEGER028) = STRING009
Else
For INTEGER001 = 2 To 25
TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
Next
TSTRING018(25) = STRING009
Endif
If (BOOLEAN002 == 1) Then
If (BOOLEAN001 == 1) Then
BOOLEAN001 = 0
Goto LABEL001
Goto LABEL015
Endif
Goto LABEL002
Endif
:LABEL015
If (STRING009 == "?") Then
Newlines 2
ResetDisp
Command 1, STRING009
StartDisp 1
Else
BOOLEAN003 = 1
Endif
Case "SYSOP"
If (INTEGER028 < 25) Then
Inc INTEGER028
TSTRING018(INTEGER028) = STRING009
Else
For INTEGER001 = 2 To 25
TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
Next
TSTRING018(25) = STRING009
Endif
If (U_Sec >= INTEGER002) Then
Color 7
Cls
PrintLn "@X07┌───────────────────────────────────────────────────────────────────────────┐"
PrintLn "@X07│ @X0FSysop Password @X08:@X0F @X07│"
PrintLn "@X07└───────────────────────────────────────────────────────────────────────────┘"
AnsiPos 21, 2
STRING004 = ""
InputStr "_", STRING004, "@X0F", 30, Mask_Pwd(), 0 + 1
If (Upper(STRING004) <> Upper(STRING005)) Then
Log "[ATLANTiS] - WARNING: Wrong Sysop Password : " + Upper(STRING004), 0
Newlines 2
Return
Endif
ResetDisp
Call PPEPath() + "Sysop\Sysop.PPE"
StartDisp 1
BOOLEAN009 = 1
Else
ResetDisp
Command 1, "SYSOP"
StartDisp 1
BOOLEAN009 = 1
Endif
Case Else
If (INTEGER028 < 25) Then
Inc INTEGER028
TSTRING018(INTEGER028) = STRING009
Else
For INTEGER001 = 2 To 25
TSTRING018(INTEGER001 - 1) = TSTRING018(INTEGER001)
Next
TSTRING018(25) = STRING009
Endif
Newlines 2
ResetDisp
Command 1, STRING009
If (BOOLEAN003 == 1) Then
If (TBOOLEAN010(INTEGER006) == 1) KbdFlush
Else
STRING020 = ""
STRING020 = Inkey()
If (STRING020 <> "") Then
STRING004 = Inkey()
While (STRING004 <> "") Do
STRING020 = STRING020 + STRING004
STRING004 = Inkey()
EndWhile
Endif
If (STRING020 == Chr(13)) STRING020 = ""
If (STRING020 <> "") Then
KbdFlush
KbdStuff STRING020
STRING020 = ""
STRING004 = ""
Else
Wait
Endif
Endif
StartDisp 1
BOOLEAN009 = 1
End Select
INTEGER015 = 0
GetUser
RdUNet PcbNode()
STRING012 = UN_Stat()
Return
:LABEL016
For INTEGER014 = 1 To INTEGER007
AnsiPos TSTRING027(INTEGER014), TSTRING028(INTEGER014)
If (INTEGER014 == INTEGER006) Then
Print TSTRING025(INTEGER014)
Continue
Endif
Print TSTRING024(INTEGER014)
Next
Return
:LABEL017
STRING010 = PPEPath() + "Config" + String(INTEGER001) + "\"
If (Exist(STRING010 + "Menu-" + String(U_Sec) + ".PCB") == 0) Then
STRING011 = "Menu-All"
Else
STRING011 = "Menu-" + String(U_Sec)
Endif
If (Exist(STRING010 + STRING011 + ".PCB") == 0) Then
PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
Newline
PrintLn "@X08■ @X07The file : @X0F" + STRING010 + STRING011 + ".PCB @X07is missing."
Newline
Wait
End
Endif
If (Exist(STRING010 + STRING011 + ".CFG") == 0) Then
PrintLn "@X08■ @X0CAtlantis v1.0 An error has occured @X08■"
Newline
PrintLn "@X08■ @X07The file : @X0F" + STRING010 + STRING011 + ".CFG @X07is missing."
Newline
Wait
End
Endif
FOpen 1, STRING010 + STRING011 + ".CFG", 0, 2
:LABEL018
FGet 1, STRING004
If (Left(STRING004, 1) <> ";") Then
If (InStr(STRING004, "=") > 0) Then
If (Upper(STRING004) == "MENUCONFIG=") BOOLEAN006 = 1
If (Upper(STRING004) == "BEGINITEM=") BOOLEAN007 = 1
If (Upper(STRING004) == "NEXTITEM=") BOOLEAN007 = 1
If (Upper(STRING004) == "ENDITEM=") BOOLEAN008 = 1
If (BOOLEAN006 == 1) Then
FGet 1, STRING004
INTEGER011 = Mid(STRING004, 15, Len(STRING004) - 14)
FGet 1, STRING004
INTEGER012 = Mid(STRING004, 15, Len(STRING004) - 14)
FGet 1, STRING004
If (Upper(Mid(STRING004, 20, Len(STRING004) - 19)) == "YES") BOOLEAN005 = 1
FGet 1, STRING004
INTEGER018 = Mid(STRING004, 14, Len(STRING004) - 13)
FGet 1, STRING004
INTEGER019 = Mid(STRING004, 14, Len(STRING004) - 13)
FGet 1, STRING004
STRING015 = Mid(STRING004, 18, Len(STRING004) - 17)
FGet 1, STRING004
If (Upper(Mid(STRING004, 18, Len(STRING004) - 17)) == "YES") BOOLEAN004 = 1
FGet 1, STRING004
INTEGER016 = Mid(STRING004, 12, Len(STRING004) - 11)
FGet 1, STRING004
INTEGER017 = Mid(STRING004, 12, Len(STRING004) - 11)
FGet 1, STRING004
STRING013 = Mid(STRING004, 16, Len(STRING004) - 15)
FGet 1, STRING004
INTEGER006 = Mid(STRING004, 23, Len(STRING004) - 22)
FGet 1, STRING004
INTEGER004 = Mid(STRING004, 19, Len(STRING004) - 18)
FGet 1, STRING004
STRING014 = "@X" + Mid(STRING004, 19, 2)
FGet 1, STRING004
INTEGER021 = Mid(STRING004, 11, Len(STRING004) - 10)
BOOLEAN006 = 0
Goto LABEL019
Endif
If (BOOLEAN007 == 1) Then
Inc INTEGER007
FGet 1, STRING004
INTEGER013 = Mid(STRING004, 17, Len(STRING004) - 16)
FGet 1, STRING004
TSTRING024(INTEGER013) = Mid(STRING004, 9, Len(STRING004) - 8)
FGet 1, STRING004
TSTRING025(INTEGER013) = Mid(STRING004, 14, Len(STRING004) - 13)
FGet 1, STRING004
TSTRING027(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
FGet 1, STRING004
TSTRING028(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
FGet 1, STRING004
TSTRING030(INTEGER013) = Mid(STRING004, 5, Len(STRING004) - 4)
FGet 1, STRING004
TSTRING031(INTEGER013) = Mid(STRING004, 7, Len(STRING004) - 6)
FGet 1, STRING004
TSTRING032(INTEGER013) = Mid(STRING004, 7, Len(STRING004) - 6)
FGet 1, STRING004
TSTRING033(INTEGER013) = Mid(STRING004, 8, Len(STRING004) - 7)
FGet 1, STRING004
TSTRING026(INTEGER013) = Mid(STRING004, 10, Len(STRING004) - 9)
FGet 1, STRING004
If (Upper(Mid(STRING004, 14, Len(STRING004) - 13)) == "YES") TBOOLEAN011(INTEGER013) = 1
FGet 1, STRING004
If (Upper(Mid(STRING004, 16, Len(STRING004) - 15)) == "YES") TBOOLEAN010(INTEGER013) = 1
BOOLEAN007 = 0
Endif
Endif
Endif
:LABEL019
If (BOOLEAN008 == 0) Goto LABEL018
FClose 1
Return
:LABEL020
If (Exist(PPEPath() + "Rumour\Rumour.DAT") == 1) Then
FOpen 1, PPEPath() + "Rumour\Rumour.DAT", 2, 0
FGet 1, INTEGER008
For INTEGER014 = 1 To INTEGER008
FGet 1, STRING004
TSTRING029(INTEGER014) = STRING004
If (INTEGER014 == 200) Break
FGet 1, STRING004
Next
INTEGER014 = Random(INTEGER008)
STRING016 = TSTRING029(INTEGER014)
FClose 1
Else
TSTRING029(1) = "@X09■ Atlantis v1.0 ■ @X0FCan't Find Rumourbase @X09■@X07"
INTEGER008 = 1
STRING016 = TSTRING029(1)
Endif
For INTEGER014 = 1 To INTEGER008
If (InStr(TSTRING029(INTEGER014), "@CITY@") > 1) TSTRING029(INTEGER014) = ReplaceStr(TSTRING029(INTEGER014), "@CITY@", U_City)
If (InStr(TSTRING029(INTEGER014), "@USER@") > 1) TSTRING029(INTEGER014) = ReplaceStr(TSTRING029(INTEGER014), "@USER@", U_Name())
Next
Return
End
;------------------------------------------------------------------------------
Function FUNCTION001(String STRING035, Boolean BOOLEAN014) String
Integer INTEGER029
BOOLEAN012 = 0
If (STRING035 <> "") BOOLEAN012 = 1
:LABEL021
STRING034 = ""
While (STRING034 == "") Do
STRING034 = Inkey()
INTEGER024 = Sec(Time())
RdUNet PcbNode()
If (UN_Stat() == "M") Then
STRING001 = "-------------------------------------------------------"
STRING001 = " Multinode-Broadcast-Messaging-System v1.0 (MBMS) "
STRING001 = " Copyright (c) 1997 - Jolly Roger. All Rights Reserved "
STRING001 = "-------------------------------------------------------"
FOpen 0, ReadLine(PCBDat(), 41), 0, 0
INTEGER005 = (PcbNode() - 1) * 189 + 136
FSeek 0, INTEGER005, 0
FRead 0, STRING022, 64
STRING022 = Strip(STRING022, Chr(0))
If (STRING022 <> "") Then
INTEGER022 = GetX()
INTEGER023 = GetY()
Beep
TSTRING017(1) = ScrText(1, 1, 79, 1)
TSTRING017(2) = ScrText(1, 2, 79, 1)
TSTRING017(3) = ScrText(1, 3, 79, 1)
TSTRING017(4) = ScrText(1, 4, 79, 1)
AnsiPos 1, 1
PrintLn "@X08┌[@X07'@X0FBROADCAST@X07'ed message received, Press @X0FENTER @X07to continue@X08]────────────────────┐"
PrintLn "│ │"
PrintLn "│ @X07Message: @X08│"
Print "└─────────────────────────────────────────────────────────────────────────────┘"
AnsiPos 12, 3
Color 9
Print STRING014 + STRING022
KbdFlush
While (STRING023 <> Chr(13)) Do
STRING023 = Inkey()
EndWhile
AnsiPos 1, 1
Print TSTRING017(1)
AnsiPos 1, 2
Print TSTRING017(2)
AnsiPos 1, 3
Print TSTRING017(3)
AnsiPos 1, 4
Print TSTRING017(4)
AnsiPos INTEGER022, INTEGER023
Endif
FClose 0
WrUNet PcbNode(), STRING012, U_Name(), U_City, "Currently in menu. Atlantis v1.0", ""
Endif
If (INTEGER024 == INTEGER025) BOOLEAN009 = 1
If (U_Expert == 0) Then
If (BOOLEAN013 == 1) Then
If (BOOLEAN009 == 1) Then
INTEGER022 = GetX()
INTEGER023 = GetY()
STRING019 = STRING016
If (INTEGER008 <> 1) Then
While (STRING019 == STRING016) Do
INTEGER014 = Random(INTEGER008)
If (INTEGER014 == 0) INTEGER014 = 1
STRING016 = TSTRING029(INTEGER014)
EndWhile
Goto LABEL022
Endif
STRING016 = TSTRING029(1)
:LABEL022
If (INTEGER020 <> 0) Then
AnsiPos INTEGER020, INTEGER021
Print Space(Len(STRING019))
Endif
INTEGER014 = Len(StripAtx(STRING016))
INTEGER020 = ToInt(String(41 - INTEGER014 / 2))
AnsiPos INTEGER020, INTEGER021
Print STRING021 + STRING016
INTEGER025 = FUNCTION002(INTEGER024)
AnsiPos INTEGER022, INTEGER023
BOOLEAN009 = 0
Endif
Endif
Endif
EndWhile
If (STRING034 == "BADKEY") Goto LABEL021
If (BOOLEAN012 == 1) Then
If (InStr(STRING035, STRING034) == 0) Then
If (BOOLEAN014 == 1) Then
If (STRING034 == "UP") Goto LABEL023
If (STRING034 == "DOWN") Goto LABEL023
If (STRING034 == "LEFT") Goto LABEL023
If (STRING034 == "RIGHT") Goto LABEL023
Endif
Goto LABEL021
Endif
Endif
If (BOOLEAN014 == 0) Then
If (STRING034 == "UP") Goto LABEL021
If (STRING034 == "DOWN") Goto LABEL021
If (STRING034 == "LEFT") Goto LABEL021
If (STRING034 == "RIGHT") Goto LABEL021
Endif
:LABEL023
FUNCTION001 = STRING034
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION002(Integer INTEGER029) Integer
If (INTEGER029 + INTEGER026 > 60) Then
INTEGER027 = INTEGER026 - 60 - INTEGER029
FUNCTION002 = INTEGER027
Else
FUNCTION002 = INTEGER029 + INTEGER026
Endif
If (FUNCTION002 == 60) FUNCTION002 = 0
EndFunc
:LABEL024
AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
Print TSTRING024(INTEGER006)
AnsiPos INTEGER011, INTEGER012
If (BOOLEAN003 == 1) Then
Print STRING014 + Space(Len(TSTRING026(INTEGER006)))
Else
Print STRING014 + Space(Len(STRING009))
Endif
Return
:LABEL025
AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
Print TSTRING025(INTEGER006)
AnsiPos INTEGER011, INTEGER012
Print STRING014 + TSTRING026(INTEGER006)
AnsiPos TSTRING027(INTEGER006), TSTRING028(INTEGER006)
BOOLEAN003 = 1
Return
STRING001 = "-------------------------------------------------------------"
STRING001 = "■ Atlantis ■ Copyright (c) 1995-1996 Jolly Roger ■ Atlantis ■"
STRING001 = "-------------------------------------------------------------"
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 7 End
; 2 Cls
; 6 Wait
; 3 Color
; 166 Goto
; 199 Let
; 36 Print
; 16 PrintLn
; 131 If
; 1 DispFile
; 3 FOpen
; 3 FClose
; 30 FGet
; 5 ResetDisp
; 6 StartDisp
; 2 GetUser
; 1 Log
; 1 InputStr
; 15 Gosub
; 10 Return
; 5 Inc
; 1 Dec
; 11 Newline
; 4 Newlines
; 2 Tokenize
; 3 Beep
; 3 KbdStuff
; 2 Call
; 3 RdUNet
; 2 WrUNet
; 40 AnsiPos
; 1 Backup
; 1 FSeek
; 1 FRead
; 3 KbdFlush
; 2 EndFunc
; 3 Command
;
;
; ■ Functions used :
;
; 1 *
; 1 /
; 91 +
; 39 -
; 97 ==
; 16 <>
; 12 <
; 6 <=
; 9 >
; 13 >=
; 88 !
; 12 &&
; 10 ||
; 60 Len(
; 31 Upper()
; 35 Mid()
; 5 Left()
; 13 Space()
; 13 Chr()
; 4 InStr()
; 4 Trim()
; 3 Random()
; 2 Time()
; 3 U_Name()
; 2 Sec()
; 1 StripAtx()
; 1 Strip()
; 5 Inkey()
; 4 String()
; 1 Mask_Pwd()
; 1 PCBDat()
; 18 PPEPath()
; 7 PcbNode()
; 10 ReadLine()
; 4 UN_Stat()
; 3 GetToken()
; 6 Exist()
; 1 AnsiOn()
; 3 GetX()
; 3 GetY()
; 4 ScrText()
; 2 ReplaceStr()
; 1 ToInt()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Cd
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 6 For/Next
; 4 While/EndWhile
; 64 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------